//package com.ruyuan.redis.impl;
//
//import com.ruyuan.redis.RedisClient;
//import redis.clients.jedis.Jedis;
//import redis.clients.jedis.JedisPool;
//import redis.clients.jedis.ScanParams;
//import redis.clients.jedis.ScanResult;
//import redis.clients.jedis.params.SetParams;
//
//import java.util.HashSet;
//import java.util.Set;
//
//
///**
// * @author xx
// */
//public class RedisClientImpl implements RedisClient {
//
//    private JedisPool jedisPool;
//
//    public RedisClientImpl(JedisPool jedisPool) {
//        this.jedisPool = jedisPool;
//    }
//
//    @Override
//    public boolean put(byte[] key, byte[] value, long timeoutSeconds) {
//        try(Jedis jedis = jedisPool.getResource()) {
//            String res = jedis.set(key, value, SetParams.setParams().ex(timeoutSeconds));
//            return "OK".equalsIgnoreCase(res);
//        } catch (Throwable e) {
//            return false;
//        }
//    }
//
//    @Override
//    public byte[] get(byte[] key) {
//        try(Jedis jedis = jedisPool.getResource()) {
//            return jedis.get(key);
//        } catch (Throwable e) {
//            return null;
//        }
//    }
//
//    @Override
//    public boolean del(byte[] key) {
//        try(Jedis jedis = jedisPool.getResource()) {
//            Long res = jedis.del(key);
//            return res > 0;
//        } catch (Throwable e) {
//            return false;
//        }
//    }
//
//    @Override
//    public void destroy() {
//        jedisPool.destroy();
//    }
//
//    @Override
//    public Set<byte[]> scan(byte[] keyPrefix) {
//        try(Jedis jedis = jedisPool.getResource()) {
//            String cursor = ScanParams.SCAN_POINTER_START;
//            ScanParams scanParams = new ScanParams();
//            scanParams.match(keyPrefix);
//            scanParams.count(1000);
//            ScanResult<String> set = jedis.scan(cursor, scanParams);
//            Set<byte[]> res = new HashSet<>();
//            for (String s : set.getResult()) {
//                res.add(s.getBytes());
//            }
//            return res;
//        } catch (Throwable e) {
//            return null;
//        }
//    }
//}
